/*
    The I Ching (the Book of Changes) plasmoid.
    Copyright (C) 2002-2009 Jean Pierre Charalambos.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/

#ifndef DATAGRAM_H
#define DATAGRAM_H

#include <stdlib.h>
#include <QObject>
#include <QString>

/**
  *@author Jean Pierre Charalambos
  */

class Datagram : public QObject {
        Q_OBJECT
    public:
        virtual ~Datagram() { name.clear(); }
        int getId() const;
        const QString & getName() const;

    public slots:
        virtual void setId ( ) {
            generate ( );
            emit changed( );
        }
        virtual void setId ( int i )  {
            adjust ( i );
            emit changed( );
        }

    signals:
        void changed ( void );

    protected:
        QString name;
        int id;

    protected slots:
        virtual void generate() = 0;
        virtual void adjust ( int ) = 0;
        //virtual void setName() = 0;
};

#endif
